package vip.liux.contracts.models.identity.vo;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 用户登录信息记录
 * <p>用于存储用户的登录提供者信息，包括提供者名称、标识和显示名称。</p>
 */
@Setter
@Getter
public class UserLoginInfo implements Serializable {
    private String loginProvider;       // 登录提供者名称，例如 "Google" 或 "Facebook"
    private String providerKey;         // 登录提供者的唯一标识，例如用户的 ID
    private String providerDisplayName; // 登录提供者的显示名称

    /**
     * 构造方法
     *
     * @param loginProvider       登录提供者名称
     * @param providerKey         登录提供者的唯一标识
     * @param providerDisplayName 登录提供者的显示名称
     */
    public UserLoginInfo(String loginProvider, String providerKey, String providerDisplayName) {
        this.loginProvider = loginProvider;
        this.providerKey = providerKey;
        this.providerDisplayName = providerDisplayName;
    }

    @Override
    public String toString() {
        return "UserLoginInfo{" +
                "loginProvider='" + loginProvider + '\'' +
                ", providerKey='" + providerKey + '\'' +
                ", providerDisplayName='" + providerDisplayName + '\'' +
                '}';
    }
}